Skip to content

feat(writer): emit NULL_COUNT zone-maps for every column type#126

Merged
dfa1 merged 1 commit into
mainfrom
feat/zone-map-null-count-all-types
Jun 21, 2026
Merged

feat(writer): emit NULL_COUNT zone-maps for every column type#126
dfa1 merged 1 commit into
mainfrom
feat/zone-map-null-count-all-types

Conversation

@dfa1

@dfa1 dfa1 commented Jun 21, 2026

Copy link
Copy Markdown
Owner

NULL_COUNT is computable for any column, unlike MIN/MAX (primitives only).
flushZoneMaps now emits a vortex.stats zone-map for every column: NULL_COUNT
always, plus MIN/MAX when the column is a fixed-width primitive whose chunks
all carry stats. The stat bitset varies per column (NULL_COUNT-only = 0x40,
with MIN/MAX = 0x58).

A NULL_COUNT-only table is a single-field struct, which the struct decoder
collapses to the bare field; InspectorRender.formatStatsArray now renders
that single-stat case instead of requiring a StructArray.

Tests cover primitive (min/max + null_count), non-primitive Utf8
(null_count-only, per-zone counts), and the partial-stats fallback. Full
writer/reader/cli/inspector suites green; 213 Rust JNI interop tests pass
(Rust reads the null_count-only zone-maps on every column type).

Co-Authored-By: Claude Opus 4.8 [email protected]

NULL_COUNT is computable for any column, unlike MIN/MAX (primitives only).
flushZoneMaps now emits a vortex.stats zone-map for every column: NULL_COUNT
always, plus MIN/MAX when the column is a fixed-width primitive whose chunks
all carry stats. The stat bitset varies per column (NULL_COUNT-only = 0x40,
with MIN/MAX = 0x58).

A NULL_COUNT-only table is a single-field struct, which the struct decoder
collapses to the bare field; InspectorRender.formatStatsArray now renders
that single-stat case instead of requiring a StructArray.

Tests cover primitive (min/max + null_count), non-primitive Utf8
(null_count-only, per-zone counts), and the partial-stats fallback. Full
writer/reader/cli/inspector suites green; 213 Rust JNI interop tests pass
(Rust reads the null_count-only zone-maps on every column type).

Co-Authored-By: Claude Opus 4.8 <[email protected]>
@dfa1 dfa1 merged commit c52d4b8 into main Jun 21, 2026
6 checks passed
@dfa1 dfa1 deleted the feat/zone-map-null-count-all-types branch June 21, 2026 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant